package com.srcptit.java.training.kienbd.btvn1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Bai5DemABC {
        public static void main(String[] args) throws IOException {
            // Sử dụng Buffered đọc file.
            BufferedReader bufr = new BufferedReader(new FileReader("data5.txt")); 
            
            // Kiểm tra ngoại lệ.  
            try {
                // Kiểm tra file trống.
                if( bufr.ready()==false )    throw new myEx1();// Bắt lỗi file trống 
                
                // Dữ liệu lấy từ file. 
                String dataout = bufr.readLine();
                
                // Kiểm tra Xâu rỗng.
                if( dataout==null )          throw new myEx2();//Bắt lỗi xâu rỗng.
                
                System.out.println("String in file : "+dataout);//Xuất dữ liệu ra màn hình.
                
                // Chuyển String -> char.
                char ch[] = dataout.toCharArray();
                
                // Độ dài String.
                int length = dataout.length();
                
                // Hàm đếm ký tự A, B, C.
                KophanbietABC(ch,length);
                PhanbietABC(ch,length);
                
                // Kết thúc đọc file.
                bufr.close();           
            }catch(myEx1 e){
                System.out.println("Error! File is empty.");
            }catch(myEx2 e){
                System.out.println("Error! String is empty.");
            }catch(Exception e){
                System.out.println("Error!");
            }            
        }
        static void KophanbietABC(char ch[],int length) throws IOException{
            // Sử dụng Buffered ghi file.
            BufferedWriter bufw = new BufferedWriter(new FileWriter("result5.txt"));   
            
            int count = 0;           
            for(int i=0; i<length; i++){
                if(ch[i]=='a'||ch[i]=='A'||ch[i]=='b'||ch[i]=='B'||ch[i]=='c'||ch[i]=='C')
                            count++;
            }
            // Ghi kết quả vào file.
            bufw.write("Number of character A,B,C : "+count);
            bufw.newLine();
            bufw.close();
        }
        static void PhanbietABC(char ch[],int length) throws IOException{
            // Sử dụng Buffered ghi file.
            BufferedWriter bufw = new BufferedWriter(new FileWriter("result5.txt"));     
            
            int count = 0;           
            // Đếm ký tự viết thường.
            for(int i=0; i<length; i++){
                if(ch[i]=='a'||ch[i]=='b'||ch[i]=='c')
                            count++;
            }
            // Ghi kết quả vào file.
            bufw.write("Number of character A,B,C lowercase: "+count);
            bufw.newLine();
            
            // Đếm ký tự viết hoa.
            count = 0;
            for(int i=0; i<length; i++){
                if(ch[i]=='A'||ch[i]=='B'||ch[i]=='C')
                            count++;
            }
            // Ghi kết quả vào file.
            bufw.write("Number of character A,B,C uppercase : "+count); 
            bufw.close();
        }
}
